This file creates the ML models necessary to simulate the operation of a buildings HVAC system.
Here we initialize libraries and read in the data.
# Constant Chunk
# initVer <- function(){
# ver <- list()
# ver$number <- 0.32
# ver$string <- sprintf("Version %.2f",ver$number)
# ver$starttime <- Sys.time()
# ver$startfmttime <- sprintf(format(ver$starttime, "%d %b %Y - %H:%M:%S"))
# return(ver)
# }
#bld_ <- "REDW B"
#bld_ <- "REDW A"
#bld_ <- "B99"
#bld_ <- "WILLOWS 10525"
bld_ <- "City Center"
library(randomForest,quietly=T,warn.conflicts=F)
## randomForest 4.6-12
## Type rfNews() to see new features/changes/bug fixes.
library(lubridate,quietly=T,warn.conflicts=F)
library(ggplot2,quietly=T,warn.conflicts=F)
library(reshape2,quietly=T,warn.conflicts=F)
library(dplyr,quietly=T,warn.conflicts=F)
library(scales,quietly=T,warn.conflicts=F)
library(knitr,quietly=T,warn.conflicts=F)
library(gridExtra,quietly=T,warn.conflicts=F)
library(reaferg)
ver <- initVer()
print(sprintf("%s created on %s",ver$string,ver$startfmttime))
## [1] "Version 0.32 created on 22 Jan 2016 - 23:51:35"
#knit_hooks$set(webgl = hook_webgl)
# xx <- sort(rnorm(1000))
# yy <- rnorm(1000)
# zz <- rnorm(1000) + atan2(xx,yy)
# plot3d(xx, yy, zz, col=rainbow(1000))
# getErgPaths <- function(bpath="../5-prescriptive/"){
# path <- list()
# path$graph <- paste0(bpath,"graphs")
# path$qdata <- paste0(bpath,"qdata")
# # these later paths appear unused?
# path$data <- paste0(bpath,"data")
# path$tdata <- paste0(bpath,"tdata")
# path$runparm <- paste0(bpath,"rundata")
# path$wdata <- paste0(bpath,"wdata")
# return(path)
# }
# getRparms <- function(blld,rseed=1234){
# rparms <- list()
# rparms$bld <- blld
# rparms$bchtime <- "---bchtime---"
# rparms$runname <- "devel"
# rparms$gwidth <- 12
# rparms$gheight <- 9
# rparms$randomseed <- rseed
# set.seed(rseed)
#
# rparms$trainfrac <- 0.93
# rparms$rfntree <- 70
#
# rparms$ergname <- "e.tot"
#
# rparms$noiselev <- 9
#
# rparms$usagecostkwh <- (0.06209+0.016377)
# rparms$demandcostkw <- 3.78
#
# rparms$tzab <- "US/Pacific"
# rparms$pltstime <- ymd_hms("2013-01-01 00:00:00",tz=rparms$tzab)
# rparms$stime <- ymd_hms("2014-01-01 00:00:00",tz=rparms$tzab)
# rparms$stime <- ymd_hms("2014-10-01 00:00:00",tz=rparms$tzab)
# rparms$etime <- ymd_hms("2014-12-03 23:45:00",tz=rparms$tzab)
#
# rparms$sitime <- rparms$stime
# rparms$eitime <- rparms$etime
# rparms$sitime <- ymd_hms("2014-11-18 00:00:00",tz=rparms$tzab)
# rparms$eitime <- ymd_hms("2014-11-18 23:45:00",tz=rparms$tzab)
#
# rparms$hvaclevs <- c("heating","drift","cooling")
# rparms$hvaccolors <- c("red","green","blue")
#
# # shiny specific
# rparms$trainingInvalid <- T
# rparms$traincount <- 0
# rparms$predictcount <- 0
# rparms$nchg <- 0
#
# rparms$dispvar <- "occ"
# rparms$ergvar <- "e.tot"
#
# return(rparms)
# }
# getFeatures <- function(){
# feats <- list()
# feats$time <- c("time","year","ydayf","hourf","wday","holi")
# feats$bld <- c("hdcnt")
# feats$wetr <- c("temp.f","tcool.f","theat.f","dewp.f","pres.pa","wind.deg","wind.kmh","hum.pc","rain.mm")
# feats$pred <- c("occ")
# feats$dwetr <- c("tcool.f","theat.f","dewp.f","pres.pa","wind.deg","wind.kmh","hum.pc","rain.mm")
# return(feats)
# }
epath <- getErgPaths()
rparms <- getRparms(bld_)
parms <- data.frame(ver$starttime)
feats <- getFeatures()
Graphics function definitions
# Plot Function Chunk
# mwk <- function(x){
# rv <- (x+6)%%7
# rv <- ifelse(rv==0,7,rv)
# return(rv)
# }
# r2print <- function(titwrd,y,predy,nrt,npr){
# if (is.factor(y)){
# y <- as.numeric(as.character(y))
# }
# if (is.factor(predy)){
# predy <- as.numeric(as.character(predy))
# }
# meany <- mean(y,na.rm=T)
# res <- y-predy
# ssres <- sum(res*res,na.rm=T)
# sstot <- sum((y-meany)*(y-meany),na.rm=T)
#
# r2test <- 1 - (ssres/sstot)
# adjrat <- (nrt-1)/(nrt-npr-1)
# print(sprintf("%s regressors:%d predictors:%d adjrat:%.5f",titwrd,nrt,npr,adjrat))
# print(sprintf(" SSres:%.5f SStot:%.5f mean(y):%.5f",ssres,sstot,meany)) # See Wikipedia "Coefficent of determination"" entry
# ar2test <- 1 - ((1-r2test)*adjrat)
# print(sprintf("%s R2 test:%.5f Adjusted R2 test%.5f",titwrd, r2test,ar2test))
# return(ar2test)
# }
# preStats <- function(qdf,blld,vname){
# msg <-sprintf("Means - avgval:%.1f avgstd:%.1f avgcount:%.1f",
# mean(qdf$val,na.rm=T),mean(qdf$std,na.rm=T),mean(qdf$cnt,na.rm=T))
# print(msg)
# }
# doRf <- function(rparms,trn,blld,vname,dropvars=NULL){
# set.seed(5678)
# rfntree <- rparms$rfntree
# print(sprintf("Starting rf on %s-%s",blld,vname))
# algelap <- 0
#
#
# algstarttime <- Sys.time()
# # Always drop these because we do not want to predict on them
# trn$qhr <- NULL
# trn$time <- NULL
# trn$datetime <- NULL
# # trn$year <- NULL
# #browser()
#
# if (!is.null(dropvars)){
# print("dropvars:")
# print(dropvars)
# print("names(trn):")
# print(names(trn))
# idxes <- match(dropvars,names(trn))
# idxes <- idxes[ !is.na(idxes) ]
# # print("match:")
# # print(idxes)
# trn[,idxes] <- list(NULL)
# print("dropping vars")
# print(dropvars)
# }
# formc <- sprintf("%s ~ .",vname)
# print(sprintf("Training with %s",formc))
# form <- as.formula(formc)
# rf <- randomForest(form, trn, do.trace=10, ntree=rfntree,importance=TRUE)
# algelap <- as.numeric((Sys.time()-algstarttime)[1],units="secs")
# # print(rf)
# print(sprintf("%s Training rf at %s took %.1f secs",vname,algstarttime,algelap))
# # print(summary(rf))
# if (!is.null(rf$rsq)){
# r2plot <- qplot(1:length(rf$rsq),rf$rsq,main=sprintf("%s - R2 by iteration",vname))
# print(r2plot)
# } else {
# print(sprintf("rf$rsq is NULL"))
# r2plot <- NULL
# }
# #browser()
# print("importance of rf")
# impplt <- importance(rf)
# print("print(impplt)")
# print(impplt)
# print("varimpplot")
# varImpPlot(rf,main=sprintf("%s - rf varImpPlot",vname))
#
# parms$algelap <- algelap
# parms$rfntree <- rfntree
# rvals <- list()
# rvals[['impplot']] <- impplt
# rvals[['r2plot']] <- r2plot
# rvals[['rf']] <- rf
# return(rvals)
# }
# splitData <- function(rdf,blld,vname,tfrac=0.7,runname="run",testonlastweeks=T,writeOutData=F){
# if (testonlastweeks){
# lstidx <- trunc(tfrac*nrow(rdf))
# istrainpt <- seq(1:nrow(rdf))<lstidx
# print(sprintf("%s testonlastweeks set - last training index:%d",vname,lstidx))
# } else {
# istrainpt <- 2<ranidx # 92.5 percent training cases
# }
# rdf$datetime <- rdf$time
# trn <- rdf[istrainpt,]
# tst <- rdf[!istrainpt,]
# rdf$datetime <- NULL
# trn$datetime <- NULL
# tst$datetime <- NULL
#
# # browser()
# if (is.factor(rdf[[vname]])){
# for (lev in levels(rdf[[vname]])){
# ntrn <- sum(trn[[vname]]==lev)
# ntst <- sum(tst[[vname]]==lev)
# # print(sprintf("%s level:%s ntrn:%d ntst:%d",vname,lev,ntrn,ntst))
# if (ntrn==0 & ntst!=0){
# # print(sprintf("shifting level:%s ntrn:%d ntst:%d",lev,ntrn,ntst))
# idx <- which(tst[[vname]]==lev)
# # move one of the tst records to trn
# sidx <- sample(idx,1)
# trn <- rbind(trn,tst[sidx,])
# tst <- tst[-sidx,]
# }
# }
# }
#
# print(sprintf("Spliting %s - train cases:%d test cases:%d",vname,nrow(trn),nrow(tst)))
#
# if (writeOutData){
# trfnamebase <- sprintf("train-%s-%s-%s-%.1f.csv",blld,vname,runname,version)
# trfname <- sprintf("%s/%s",tdatapath,trfnamebase)
# print(sprintf("Writing %d rows to %s",nrow(trn),trfname))
# write.csv(trn,trfname,quote=F,row.names=F)
#
# tsfnamebase <- sprintf("test-%s-%s-%s-%.1f.csv",blld,vname,runname,version)
# tsfname <- sprintf("%s/%s",tdatapath,tsfnamebase)
# print(sprintf("Writing %d rows to %s",nrow(tst),tsfname))
# write.csv(tst,tsfname,quote=F,row.names=F)
# }
# rlst <- list()
# rlst[[1]] <- trn
# rlst[[2]] <- tst
# print("end of splitdata")
# return(rlst)
# }
# createPlotSet <- function(rdf,rdfvname,rdfvlab,trn,trnvname,trnvlab,tst,tstvname,tstvlab,orgtime,tzab="UCT"){
# n1df <- data.frame(time=rdf$time,qhr=rdf$qhr,val=rdf[[rdfvname]],vlab=rdfvlab)
# n2df <- data.frame(time=trn$time,qhr=trn$qhr,val=trn[[trnvname]],vlab=trnvlab)
# n3df <- data.frame(time=tst$time,qhr=tst$qhr,val=tst[[tstvname]],vlab=tstvlab)
# rdf <- rbind(n1df,n2df,n3df)
# rdf$time <- ymd_hms(rdf$time,tz=tzab)
# # attr(rdf$time,"tzone") <- tzab
# rdf$year <- year(rdf$time)
# rdf$daynum <- trunc(as.numeric(1+difftime(rdf$time, orgtime, units="days")))
# rdf$weeknum <-trunc(rdf$daynum / 7)
# rdf$wkrow <- trunc(rdf$weeknum / 4)
# rdf$wkcol <- rdf$weeknum %% 4
# rdf$timewk <- (as.numeric(rdf$time) - rdf$weeknum*7*24*60*60 - as.numeric(orgtime) + 1)/(24*60*60)
# rdf$holi <- 0 # no holidays
# return(rdf)
# }
# readData3 <- function(blld,qpath,vname,vfname=NULL,tzab="UCT"){
# # This qdata was created in 3-advmodel\aggdataNN.Rmd
# if (is.null(vfname)){
# vfname <- vname
# }
# fname <- sprintf("%s/%s-%s.csv",qpath,blld,vfname)
# df <- read.csv(fname)
# dbdf <<- df
# df$time <- ymd_hms(df$time,tz=tzab)
# print(sprintf("Read %d rows from %s",nrow(df),fname))
# sapply(df,class)
# return(df)
# }
# trainAndPredict_3 <- function(rparms,qpath,vname,vfname=NULL,iatlims=NULL,lmnames=NULL,dropvars=NULL,fullset=F,medianFilter=F,filterDates=T,addlaggediat=F,occAsFactor=F){
# ergv <- rparms$ergname
# rrdf <- readData3(rparms$bld,qpath,vname,vfname,rparms$tzab)
#
# if (occAsFactor){
# occfak <- factor(rrdf$occ)
# maxlevs <- 20
# if (length(levels(occfak)>maxlevs)){
# discocc <- trunc( 0.5 + rrdf$occ*maxlevs )/maxlevs
# occfak <- factor(discocc)
# }
# rrdf$occ <- occfak
# }
# if (!is.null(ergv)){
# rrdf[["erg"]] <- rrdf[[ergv]]
# }
# rrdf$wday <- mwk(rrdf$wday)
# if (medianFilter){
# rrdf[[vname]] <- medianFilter(rrdf[[vname]])
# }
# print(summary(rrdf))
# rrdf[["e.tot"]] <- NULL
# rrdf[["e.base"]] <- NULL
# rrdf[["e.plug"]] <- NULL
# if (addlaggediat){
# nv <- nrow(rrdf)
# fval <- rrdf$iat[1]
# # lagged iat
# rrdf$liat <- c(fval,rrdf$iat[1:(nv-1)])
# # recalc the derivitive to be sure about its value
# rrdf$diat <- rrdf$iat-rrdf$liat
# # post lag
# lval <- rrdf$iat[nv]
# rrdf$piat <- c(rrdf$iat[2:nv],lval)
# vname <- "piat"
# rrdf$iat <- NULL
# }
#
# rdf <- rrdf[ complete.cases(rrdf), ]
# if (filterDates){
# rdf <- rdf[ rparms$stime<=rdf$time & rdf$time<=rparms$etime, ]
# }
#
# rlst <- splitData(rdf,rparms$bld,vname,tfrac=rparms$trainfrac,runname=rparms$runname)
# trndf <- rlst[[1]]
# tstdf <- rlst[[2]]
#
# if (occAsFactor){
# trndf <- droplevels(trndf)
# }
# # browser()
# if (!is.null(trndf$iat)){
# qiat <- quantile(trndf$iat,c(0.20,0.80),na.rm=T)
# qmed <- median(trndf$iat)
# print("qiat")
# print(qiat)
# iatlims <- round(qiat,1)
# print("iatlims")
# print(iatlims)
# }
#
# rfvals <- doRf(rparms,trndf,rparms$bld,vname,dropvars )
# rffit <- rfvals$rf
# # browser()
# slmfit <- NULL
# # if (!is.null(iatlims)){
# # slmfit <- smseglm(trndf,vname,"iat",dropvars,iatlims,lmnames,trace=F)
# # }
#
# predvname <- paste0("pred.",vname)
#
# rdf[[predvname]] <- predict(rffit,rdf)
# tstdf[[predvname]] <- predict(rffit,tstdf)
# trndf[[predvname]] <- predict(rffit,trndf)
# rrdf[[predvname]] <- predict(rffit,rrdf)
#
# vlab <- paste0(rparms$bld,"-",vname)
#
# # etot.r2 <- r2print("e.tot",test$e.tot,test$res,nrow(test),ncol(test)-1)
# r2trn <- r2print(sprintf("trn-%s",vlab),trndf[[vname]],trndf[[predvname]],nrow(trndf),ncol(trndf)-1)
# r2tst <- r2print(sprintf("tst-%s",vlab),tstdf[[vname]],tstdf[[predvname]],nrow(tstdf),ncol(tstdf)-1)
#
# # browser()
# pdf <- createPlotSet(rdf, predvname,"predicted",trndf,vname,"train",tstdf,vname,"test",rparms$pltstime,rparms$tzab)
# prdf <- createPlotSet(rrdf,predvname,"predicted",trndf,vname,"train",tstdf,vname,"test",rparms$pltstime,rparms$tzab)
#
#
# rlst <- list()
# rlst[["trndf"]] <- trndf
# rlst[["tstdf"]] <- tstdf
# rlst[["rdf"]] <- rdf
# rlst[["prdf"]] <- prdf
# rlst[["rffit"]] <- rffit
# rlst[["slmfit"]] <- slmfit
# rlst[["iatlims"]] <- iatlims
# # rlst[["qmed"]] <- qmed
# rlst[["r2plot"]] <- rfvals$r2plot
# rlst[["impplot"]] <- rfvals$impplot
# return(rlst)
# }
# detailPlot3 <- function(qdf,rparms,graphpath, vname,wdf = NULL,bdf = NULL,xlim=NULL,ylim=NULL,dval=F,saveplot=T) {
# if (!is.null(ylim)){
# qdf$val <- pmax( ylim[1], pmin( qdf$val, ylim[2]))
# }
# qdf <- qdf[!is.na(qdf$val), ]
#
# # Add missing weather
# if (!is.null(wdf)){
# wncdf <- wdf[!complete.cases(wdf),c(1,2)]
# wncdf$lev <- rep(0,nrow(wncdf))
# wncdf$dn <-
# trunc(as.numeric(1 + difftime(wncdf$wtime, rparms$pltstime, units = "days")))
# wncdf$wn <- trunc(wncdf$dn / 7)
# wncdf$wkrow <- trunc(wncdf$wn / 4)
# wncdf$wkcol <- trunc(wncdf$wn %% 4)
# wncdf$timewk <-
# (as.numeric(wncdf$wtime) - wncdf$wn * 7 * 24 * 60 * 60 - as.numeric(rparms$pltstime) + 1) /
# (24 * 60 * 60)
# wncdf$series <- rep("no-weather-data",nrow(wncdf))
# }
#
# if (!is.null(bdf)){
# # Add holidays
# hodf <- bdf[bdf$holi > 0,c(1,2)]
# hodf$lev <- rep(0,nrow(hodf))
# hodf$dn <-
# trunc(as.numeric(1 + difftime(hodf$time, rparms$pltstime, units = "days")))
# hodf$wn <- trunc(hodf$dn / 7)
# hodf$wkrow <- trunc(hodf$wn / 4)
# hodf$wkcol <- trunc(hodf$wn %% 4)
# hodf$timewk <-
# (as.numeric(hodf$time) - hodf$wn * 7 * 24 * 60 * 60 - as.numeric(rparms$pltstime) + 1) /
# (24 * 60 * 60)
# hodf$series <- rep("holiday",nrow(hodf))
# }
#
#
# # Add Month date lines
# vmax <- max( qdf$val,na.rm=T )
# vmin <- min( qdf$val,na.rm=T )
# print(sprintf("Value range min:%.4f max:%.4f",vmin,vmax))
#
# vmax9 <- 0.9 * vmax
# atlist <- c()
# vldata <- NULL
# for (y in 2013:2014) {
# iy <- y - 2000
# for (m in 1:12) {
# dt <- ymd(sprintf("%d-%d-1",y,m),tz = "US/Pacific")
# dn <- trunc(as.numeric(1 + difftime(dt, rparms$pltstime, units = "days")))
# wn <- trunc(dn / 7)
# wr <- trunc(wn / 4)
# wc <- trunc(wn %% 4)
# twk <-
# (as.numeric(dt) - wn * 7 * 24 * 60 * 60 - as.numeric(rparms$pltstime) + 1) / (24 *
# 60 * 60)
# jdf <- data.frame(wkrow = wr,wkcol = wc,timewk = twk)
# vldata <- rbind(vldata,jdf)
# aldf <-
# data.frame(
# timewk = twk + 0.25, val = vmax9, vlab = "month-start",
# lab = sprintf("%d-%d",iy,m),wkrow = wr,wkcol = wc
# )
# atlist[[length(atlist) + 1]] <- aldf
# }
# }
# ecolors <- c("blue","green","red","black","darkgreen","darkblue")
# names(ecolors) <- c("predicted","train","test","month-start","no-weather-data","holiday")
# #print(sprintf("vname:%s - %s",vname,ecolors[vname]))
# #cvname <- ecolors[vname]
# fp <- ggplot(qdf,aes(timewk,val,color=vlab)) +
#
# geom_point(size = 0.01,shape = 16,na.rm=T ) +
#
# facet_grid(wkrow ~ wkcol) +
# scale_color_manual(values = ecolors) +
# geom_vline(aes(xintercept = timewk),vldata,size = 0.01) + # month markers
# labs(title=sprintf("%s - %s",rparms$bld,vname),y=vname,x="Time") +
# theme_bw()
#
# if (!is.null(wdf)){
# fp <- fp + geom_point(
# aes(timewk,lev),size = 1,data = wncdf,shape = 16,alpha = I(0.5),na.rm=T
# ) # missing weather
# }
# if (!is.null(bdf)){
# fp <- fp + geom_point(
# aes(timewk,lev),size = 1,data = hodf,shape = 16,alpha = I(0.5),na.rm=T
# ) # holidays
# }
# if (!is.null(xlim)){
# fp <- fp + scale_x_continuous( limits=xlim )
# }
# if (!is.null(ylim)){
# fp <- fp + scale_y_continuous( limits=ylim )
# }
# ## Add month date lines to plot
# jnk <-
# sapply(atlist,function(x) {
# # have to assign one level up, thus the double <<-
# fp <<- fp + geom_text(data = x,aes(timewk,val),size = 2,label = x$lab)
# #print(sprintf("adding %s",x$lab))
# })
# #glbfp <<- fp
# if (saveplot){
# gfname <- sprintf("%s/wkpanels-%s-%s-%.2f.png",graphpath,rparms$bld,rparms$bchtime,rparms$trainfrac)
# #ggsave(file=gfname, plot=fp, width=rparms$gwidth, height=rparms$gheight)
# png(gfname,width = 2000,height = 4000)
# # print(fp)
# jnk <- dev.off()
# }
# return(fp)
# }
# overviewPlot3 <- function(qdf,rparms,vname,xlim=NULL,ylim=NULL,dval=F){
# if (!is.null(ylim)){
# qdf$val <- pmax( ylim[1], pmin( qdf$val, ylim[2]))
# }
# ecolors <- c("blue","green","red","black","darkgreen","darkblue")
# names(ecolors) <- c("predicted","train","test","month-start","no-weather-data","holiday")
# qqdf <- qdf[!is.na(qdf$val), ]
# qp <- qplot(time,val,data=qqdf,color=I(ecolors[qqdf$vlab]),alpha=I(1/10)) +
# labs(title=sprintf("%s - %s",rparms$bld,vname),y=vname,x="Time") +
# scale_color_manual(values=ecolors) +
# guides(colour = guide_legend(override.aes = list(alpha = 1))) # override legend alpha
# if (!is.null(xlim)){
# qp <- qp + scale_x_continuous( limits=xlim )
# }
# if (!is.null(ylim)){
# qp <- qp + scale_y_continuous( limits=ylim )
# }
# # print(qp)
# return(qp)
# }
# trainOne <- function(){
# erglst <- trainAndPredict_3(rparms,epath$qdata,"erg",vfname="erg3",dropvars=NULL)
# overviewPlot3(erglst[["prdf"]],rparms,rparms$ergname)
# detailPlot3(erglst[["prdf"]],rparms,epath$graph,rparms$ergname)
#
# }
#
# trainAll <- function(bld="City Faker",tf=0.7,rfn=10){
# rv <- list()
# rv[["occ"]] <- genErgProf(bld,"occ",trainfak=tf,rfntree=rfn,ybase=0.8,yrng=0.8,ymin=0,ymax=1)
# rv[["iat"]] <- genErgProf(bld,"iat",trainfak=tf,rfntree=rfn,ybase=72,yrng=3)
# rv[["diat"]] <- genErgProf(bld,"diat",trainfak=tf,rfntree=rfn,ybase=0,yrng=3)
# rv[["e.base"]] <- genErgProf(bld,"e.base",trainfak=tf,rfntree=rfn,ybase=300,yrng=100)
# rv[["e.tot"]] <- genErgProf(bld,"e.tot",trainfak=tf,rfntree=rfn,ybase=1300,yrng=300)
# return(rv)
# }
# trainAll <- function(rparms,tf=0.7,rfn=10){
#
# rv <- list()
#
# depvar <- "occ"
# occlst <- trainAndPredict_3(rparms,epath$qdata,depvar,
# dropvars=c("iat",feats$wetr,"ydayf","holi","year","hdcnt"),
# occAsFactor = T)
# og <- overviewPlot3(occlst[["prdf"]],rparms,depvar)
# dg <- NULL #detailPlot(occlst[["prdf"]],rparms,"occ")
# occlst$overviewplot <- og
# occlst$detailplot <- dg
# occlst$depvar <- depvar
# rv[[depvar]] <- occlst
#
# depvar <- "erg"
# erglst <- trainAndPredict_3(rparms,epath$qdata,depvar,vfname="erg3",dropvars=NULL)
# og <- overviewPlot3(erglst[["prdf"]],rparms,rparms$ergname)
# dg <- detailPlot3(erglst[["prdf"]],rparms,epath$graph,rparms$ergname)
# erglst$overviewplot <- og
# erglst$detailplot <- dg
# erglst$depvar <- depvar
# rv[[depvar]] <- erglst
#
# depvar <- "diat"
# diatlst <- trainAndPredict_3(rparms,epath$qdata,depvar,vfname="diat3",iatlim=iatborders,lmnames=rparms$hvaclevs,
# dropvars=c(feats$time,feats$bld,feats$dwetr,feats$pred),
# medianFilter=F,occAsFactor = F)
# og <- overviewPlot3(diatlst[["prdf"]],rparms,depvar,ylim=c(-0.25,0.25))
# dg <- detailPlot3(diatlst[["prdf"]],rparms,epath$graph,depvar,ylim=c(-0.25,0.25))
# diatlst$overviewplot <- og
# diatlst$detailplot <- dg
# diatlst$depvar <- depvar
# rv[[depvar]] <- diatlst
#
# depvar <- "iat"
# iiatlst <- trainAndPredict_3(rparms,epath$qdata,depvar,vfname="diat3",lmnames=rparms$hvaclevs,
# dropvars=c(feats$time,feats$bld,feats$dwetr,feats$pred),
# medianFilter=F,addlaggediat=T,occAsFactor = F)
# og <- overviewPlot3(iiatlst[["prdf"]],rparms,depvar,ylim=c(-0.25,0.25))
# dg <- detailPlot3(iiatlst[["prdf"]],rparms,epath$graph,depvar,ylim=c(-0.25,0.25))
# iiatlst$overviewplot <- og
# iiatlst$detailplot <- dg
# iiatlst$depvar <- depvar
# rv[[depvar]] <- iiatlst
# return(rv)
# }
tset <- trainAll(rparms)
## [1] "Read 70090 rows from ../5-prescriptive/qdata/City Center-occ.csv"
## qhr time year
## Min. : 0 Min. :2013-01-01 00:00:00 Min. :2013
## 1st Qu.:17522 1st Qu.:2013-07-02 13:30:00 1st Qu.:2013
## Median :35040 Median :2014-01-01 00:00:00 Median :2014
## Mean :35041 Mean :2014-01-01 00:12:44 Mean :2014
## 3rd Qu.:52562 3rd Qu.:2014-07-02 13:15:00 3rd Qu.:2014
## Max. :70080 Max. :2014-12-31 23:45:00 Max. :2014
## NA's :1 NA's :1
## ydayf hourf wday holi
## Min. :0.002732 Min. :0.0000 Min. :1.000 Min. :0.00000
## 1st Qu.:0.251399 1st Qu.:0.2396 1st Qu.:2.000 1st Qu.:0.00000
## Median :0.500063 Median :0.4896 Median :4.000 Median :0.00000
## Mean :0.500162 Mean :0.4947 Mean :3.996 Mean :0.02467
## 3rd Qu.:0.748726 3rd Qu.:0.7396 3rd Qu.:6.000 3rd Qu.:0.00000
## Max. :0.997380 Max. :0.9896 Max. :7.000 Max. :1.00000
## NA's :1 NA's :1 NA's :1 NA's :1
## temp.f tcool.f theat.f dewp.f
## Min. :15.50 Min. : 0.0000 Min. : 0.00 Min. : 0.90
## 1st Qu.:44.20 1st Qu.: 0.0000 1st Qu.: 8.50 1st Qu.:39.72
## Median :52.10 Median : 0.0000 Median :17.92 Median :46.40
## Mean :53.04 Mean : 0.4821 Mean :17.62 Mean :45.72
## 3rd Qu.:61.50 3rd Qu.: 0.0000 3rd Qu.:25.80 3rd Qu.:53.16
## Max. :96.10 Max. :24.0400 Max. :54.46 Max. :68.60
## NA's :8 NA's :8 NA's :8 NA's :8
## pres.pa wind.deg wind.kmh hum.pc
## Min. : 986 Min. : 0.0 Min. : 0.0000 Min. :19.70
## 1st Qu.:1010 1st Qu.:114.2 1st Qu.: 0.0000 1st Qu.:69.50
## Median :1015 Median :171.2 Median : 0.4221 Median :83.10
## Mean :1015 Mean :165.8 Mean : 0.8841 Mean :78.19
## 3rd Qu.:1019 3rd Qu.:219.4 3rd Qu.: 1.3333 3rd Qu.:90.00
## Max. :1043 Max. :360.0 Max. :12.8670 Max. :97.30
## NA's :8 NA's :8 NA's :8 NA's :8
## rain.mm hdcnt iat occ
## Min. : 0.0000 Min. :1879 Min. :67.41 0.05 : 9741
## 1st Qu.: 0.0000 1st Qu.:2024 1st Qu.:71.38 0.1 : 7133
## Median : 0.0000 Median :2045 Median :72.19 0.95 : 5842
## Mean : 0.0937 Mean :2026 Mean :72.22 1 : 5193
## 3rd Qu.: 0.0000 3rd Qu.:2062 3rd Qu.:73.17 0.15 : 2666
## Max. :14.2555 Max. :2085 Max. :77.13 (Other): 4444
## NA's :8 NA's :1 NA's :35532 NA's :35071
## [1] "occ testonlastweeks set - last training index:5374"
## [1] "Spliting occ - train cases:5373 test cases:406"
## [1] "end of splitdata"
## [1] "qiat"
## 20% 80%
## 71.20232 72.40789
## [1] "iatlims"
## 20% 80%
## 71.2 72.4
## [1] "Starting rf on City Center-occ"
## [1] "dropvars:"
## [1] "iat" "temp.f" "tcool.f" "theat.f" "dewp.f" "pres.pa"
## [7] "wind.deg" "wind.kmh" "hum.pc" "rain.mm" "ydayf" "holi"
## [13] "year" "hdcnt"
## [1] "names(trn):"
## [1] "year" "ydayf" "hourf" "wday" "holi" "temp.f"
## [7] "tcool.f" "theat.f" "dewp.f" "pres.pa" "wind.deg" "wind.kmh"
## [13] "hum.pc" "rain.mm" "hdcnt" "iat" "occ"
## [1] "dropping vars"
## [1] "iat" "temp.f" "tcool.f" "theat.f" "dewp.f" "pres.pa"
## [7] "wind.deg" "wind.kmh" "hum.pc" "rain.mm" "ydayf" "holi"
## [13] "year" "hdcnt"
## [1] "Training with occ ~ ."
## ntree OOB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
## 10: 26.85%100.00% 33.62% 27.89% 66.02%100.00%100.00%100.00% 64.29% 93.75%100.00%100.00%100.00%100.00%100.00%100.00% 81.82% 93.33%100.00%100.00%100.00% 1.48%
## 20: 25.07%100.00% 33.20% 24.85% 57.83%100.00%100.00%100.00% 68.97%100.00%100.00%100.00%100.00%100.00%100.00%100.00% 90.91% 86.67%100.00%100.00%100.00% 1.41%
## 30: 24.25%100.00% 30.62% 24.51% 55.42%100.00%100.00%100.00% 86.21%100.00%100.00%100.00%100.00%100.00%100.00%100.00%100.00% 80.00%100.00%100.00%100.00% 1.41%
## 40: 23.47%100.00% 28.50% 24.29% 53.01%100.00%100.00%100.00% 68.97%100.00%100.00%100.00%100.00%100.00%100.00%100.00%100.00% 86.67%100.00%100.00%100.00% 1.59%
## 50: 23.19%100.00% 27.88% 24.07% 52.29%100.00%100.00%100.00% 68.97%100.00%100.00%100.00%100.00%100.00%100.00%100.00% 90.91%100.00%100.00%100.00% 96.77% 1.59%
## 60: 23.34%100.00% 28.03% 24.40% 52.29%100.00%100.00%100.00% 68.97%100.00%100.00%100.00%100.00%100.00%100.00%100.00%100.00% 93.33%100.00%100.00%100.00% 1.53%
## 70: 23.19%100.00% 26.86% 24.78% 52.77%100.00%100.00%100.00% 68.97%100.00%100.00%100.00%100.00%100.00%100.00%100.00%100.00% 93.33%100.00%100.00% 96.77% 1.47%
## [1] "occ Training rf at 2016-01-22 23:51:40 took 0.4 secs"
## [1] "trn-City Center-occ regressors:5373 predictors:19 adjrat:1.00355"
## [1] " SSres:113.20500 SStot:953.50692 mean(y):0.38163"
## [1] "trn-City Center-occ R2 test:0.88128 Adjusted R2 test0.88085"
## [1] "tst-City Center-occ regressors:406 predictors:19 adjrat:1.04922"
## [1] " SSres:6.99250 SStot:72.67490 mean(y):0.39951"
## [1] "tst-City Center-occ R2 test:0.90378 Adjusted R2 test0.89905"
## [1] "Read 70104 rows from ../5-prescriptive/qdata/City Center-erg3.csv"
## qhr time year
## Min. : 0 Min. :2013-01-01 00:00:00 Min. :2013
## 1st Qu.:17526 1st Qu.:2013-07-02 14:22:30 1st Qu.:2013
## Median :35041 Median :2014-01-01 00:00:00 Median :2014
## Mean :35044 Mean :2014-01-01 00:55:35 Mean :2014
## 3rd Qu.:52566 3rd Qu.:2014-07-02 14:22:30 3rd Qu.:2014
## Max. :70080 Max. :2014-12-31 23:45:00 Max. :2014
## NA's :1 NA's :1
## ydayf hourf wday holi
## Min. :0.002732 Min. :0.0000 Min. :1.000 Min. :0.00000
## 1st Qu.:0.251402 1st Qu.:0.2396 1st Qu.:2.000 1st Qu.:0.00000
## Median :0.500068 Median :0.4896 Median :4.000 Median :0.00000
## Mean :0.500229 Mean :0.4946 Mean :3.997 Mean :0.02466
## 3rd Qu.:0.748733 3rd Qu.:0.7396 3rd Qu.:6.000 3rd Qu.:0.00000
## Max. :0.997380 Max. :0.9896 Max. :7.000 Max. :1.00000
## NA's :1 NA's :1 NA's :1 NA's :1
## temp.f tcool.f theat.f dewp.f
## Min. :15.50 Min. : 0.000 Min. : 0.000 Min. : 0.90
## 1st Qu.:44.20 1st Qu.: 0.000 1st Qu.: 8.518 1st Qu.:39.72
## Median :52.10 Median : 0.000 Median :17.920 Median :46.40
## Mean :53.04 Mean : 0.482 Mean :17.625 Mean :45.72
## 3rd Qu.:61.50 3rd Qu.: 0.000 3rd Qu.:25.800 3rd Qu.:53.16
## Max. :96.10 Max. :24.040 Max. :54.460 Max. :68.60
## NA's :8 NA's :8 NA's :8 NA's :8
## pres.pa wind.deg wind.kmh hum.pc
## Min. : 986 Min. : 0.0 Min. : 0.0000 Min. :19.70
## 1st Qu.:1010 1st Qu.:114.3 1st Qu.: 0.0000 1st Qu.:69.50
## Median :1015 Median :171.2 Median : 0.4221 Median :83.10
## Mean :1015 Mean :165.8 Mean : 0.8839 Mean :78.19
## 3rd Qu.:1019 3rd Qu.:219.4 3rd Qu.: 1.3333 3rd Qu.:90.00
## Max. :1043 Max. :360.0 Max. :12.8670 Max. :97.30
## NA's :8 NA's :8 NA's :8 NA's :8
## rain.mm hdcnt iat occ
## Min. : 0.00000 Min. :1879 Min. :67.41 Min. :0.00
## 1st Qu.: 0.00000 1st Qu.:2024 1st Qu.:71.38 1st Qu.:0.07
## Median : 0.00000 Median :2045 Median :72.19 Median :0.13
## Mean : 0.09369 Mean :2026 Mean :72.22 Mean :0.39
## 3rd Qu.: 0.00000 3rd Qu.:2062 3rd Qu.:73.17 3rd Qu.:0.96
## Max. :14.25550 Max. :2085 Max. :77.13 Max. :1.00
## NA's :8 NA's :1 NA's :35532 NA's :35071
## erg e.tot e.base e.plug
## Min. :1237 Min. :1237 Min. : 220.3 Min. :247.0
## 1st Qu.:1434 1st Qu.:1434 1st Qu.: 563.9 1st Qu.:337.7
## Median :1586 Median :1586 Median : 677.0 Median :354.0
## Mean :1732 Mean :1732 Mean : 793.5 Mean :395.6
## 3rd Qu.:2008 3rd Qu.:2008 3rd Qu.:1042.9 3rd Qu.:479.0
## Max. :4174 Max. :4174 Max. :3213.5 Max. :648.2
## NA's :36238 NA's :36238 NA's :36238 NA's :36238
## [1] "erg testonlastweeks set - last training index:5198"
## [1] "Spliting erg - train cases:5197 test cases:393"
## [1] "end of splitdata"
## [1] "qiat"
## 20% 80%
## 71.18924 72.41323
## [1] "iatlims"
## 20% 80%
## 71.2 72.4
## [1] "Starting rf on City Center-erg"
## [1] "Training with erg ~ ."
## | Out-of-bag |
## Tree | MSE %Var(y) |
## 10 | 3958 3.74 |
## 20 | 3165 2.99 |
## 30 | 2936 2.78 |
## 40 | 2736 2.59 |
## 50 | 2662 2.52 |
## 60 | 2598 2.46 |
## 70 | 2575 2.44 |
## [1] "erg Training rf at 2016-01-22 23:51:49 took 4.0 secs"
## [1] "trn-City Center-erg regressors:5197 predictors:20 adjrat:1.00386"
## [1] " SSres:2823738.62144 SStot:549265224.52927 mean(y):1636.11545"
## [1] "trn-City Center-erg R2 test:0.99486 Adjusted R2 test0.99484"
## [1] "tst-City Center-erg regressors:393 predictors:20 adjrat:1.05376"
## [1] " SSres:25207025.25397 SStot:69966655.16463 mean(y):1912.52341"
## [1] "tst-City Center-erg R2 test:0.63973 Adjusted R2 test0.62036"
## [1] "Value range min:1236.7000 max:3627.4000"
## [1] "Read 70104 rows from ../5-prescriptive/qdata/City Center-diat3.csv"
## qhr time year
## Min. : 0 Min. :2013-01-01 00:00:00 Min. :2013
## 1st Qu.:17526 1st Qu.:2013-07-02 14:22:30 1st Qu.:2013
## Median :35041 Median :2014-01-01 00:00:00 Median :2014
## Mean :35044 Mean :2014-01-01 00:55:35 Mean :2014
## 3rd Qu.:52566 3rd Qu.:2014-07-02 14:22:30 3rd Qu.:2014
## Max. :70080 Max. :2014-12-31 23:45:00 Max. :2014
## NA's :1 NA's :1
## ydayf hourf wday holi
## Min. :0.002732 Min. :0.0000 Min. :1.000 Min. :0.00000
## 1st Qu.:0.251402 1st Qu.:0.2396 1st Qu.:2.000 1st Qu.:0.00000
## Median :0.500068 Median :0.4896 Median :4.000 Median :0.00000
## Mean :0.500229 Mean :0.4946 Mean :3.997 Mean :0.02466
## 3rd Qu.:0.748733 3rd Qu.:0.7396 3rd Qu.:6.000 3rd Qu.:0.00000
## Max. :0.997380 Max. :0.9896 Max. :7.000 Max. :1.00000
## NA's :1 NA's :1 NA's :1 NA's :1
## temp.f tcool.f theat.f dewp.f
## Min. :15.50 Min. : 0.000 Min. : 0.000 Min. : 0.90
## 1st Qu.:44.20 1st Qu.: 0.000 1st Qu.: 8.518 1st Qu.:39.72
## Median :52.10 Median : 0.000 Median :17.920 Median :46.40
## Mean :53.04 Mean : 0.482 Mean :17.625 Mean :45.72
## 3rd Qu.:61.50 3rd Qu.: 0.000 3rd Qu.:25.800 3rd Qu.:53.16
## Max. :96.10 Max. :24.040 Max. :54.460 Max. :68.60
## NA's :8 NA's :8 NA's :8 NA's :8
## pres.pa wind.deg wind.kmh hum.pc
## Min. : 986 Min. : 0.0 Min. : 0.0000 Min. :19.70
## 1st Qu.:1010 1st Qu.:114.3 1st Qu.: 0.0000 1st Qu.:69.50
## Median :1015 Median :171.2 Median : 0.4221 Median :83.10
## Mean :1015 Mean :165.8 Mean : 0.8839 Mean :78.19
## 3rd Qu.:1019 3rd Qu.:219.4 3rd Qu.: 1.3333 3rd Qu.:90.00
## Max. :1043 Max. :360.0 Max. :12.8670 Max. :97.30
## NA's :8 NA's :8 NA's :8 NA's :8
## rain.mm hdcnt iat occ
## Min. : 0.00000 Min. :1879 Min. :67.41 Min. :0.00
## 1st Qu.: 0.00000 1st Qu.:2024 1st Qu.:71.38 1st Qu.:0.07
## Median : 0.00000 Median :2045 Median :72.19 Median :0.13
## Mean : 0.09369 Mean :2026 Mean :72.22 Mean :0.39
## 3rd Qu.: 0.00000 3rd Qu.:2062 3rd Qu.:73.17 3rd Qu.:0.96
## Max. :14.25550 Max. :2085 Max. :77.13 Max. :1.00
## NA's :8 NA's :1 NA's :35532 NA's :35071
## erg e.tot e.base e.plug
## Min. :1237 Min. :1237 Min. : 220.3 Min. :247.0
## 1st Qu.:1434 1st Qu.:1434 1st Qu.: 563.9 1st Qu.:337.7
## Median :1586 Median :1586 Median : 677.0 Median :354.0
## Mean :1732 Mean :1732 Mean : 793.5 Mean :395.6
## 3rd Qu.:2008 3rd Qu.:2008 3rd Qu.:1042.9 3rd Qu.:479.0
## Max. :4174 Max. :4174 Max. :3213.5 Max. :648.2
## NA's :36238 NA's :36238 NA's :36238 NA's :36238
## diat
## Min. :-0.97
## 1st Qu.:-0.02
## Median : 0.00
## Mean : 0.00
## 3rd Qu.: 0.03
## Max. : 1.40
## NA's :35817
## [1] "diat testonlastweeks set - last training index:5155"
## [1] "Spliting diat - train cases:5154 test cases:390"
## [1] "end of splitdata"
## [1] "qiat"
## 20% 80%
## 71.19176 72.41534
## [1] "iatlims"
## 20% 80%
## 71.2 72.4
## [1] "Starting rf on City Center-diat"
## [1] "dropvars:"
## [1] "time" "year" "ydayf" "hourf" "wday" "holi"
## [7] "hdcnt" "tcool.f" "theat.f" "dewp.f" "pres.pa" "wind.deg"
## [13] "wind.kmh" "hum.pc" "rain.mm" "occ"
## [1] "names(trn):"
## [1] "year" "ydayf" "hourf" "wday" "holi" "temp.f"
## [7] "tcool.f" "theat.f" "dewp.f" "pres.pa" "wind.deg" "wind.kmh"
## [13] "hum.pc" "rain.mm" "hdcnt" "iat" "occ" "erg"
## [19] "diat"
## [1] "dropping vars"
## [1] "time" "year" "ydayf" "hourf" "wday" "holi"
## [7] "hdcnt" "tcool.f" "theat.f" "dewp.f" "pres.pa" "wind.deg"
## [13] "wind.kmh" "hum.pc" "rain.mm" "occ"
## [1] "Training with diat ~ ."
## | Out-of-bag |
## Tree | MSE %Var(y) |
## 10 | 0.003682 96.63 |
## 20 | 0.003436 90.17 |
## 30 | 0.003263 85.64 |
## 40 | 0.003178 83.42 |
## 50 | 0.00313 82.14 |
## 60 | 0.003101 81.40 |
## 70 | 0.003079 80.80 |
## [1] "diat Training rf at 2016-01-22 23:52:01 took 1.7 secs"
## [1] "trn-City Center-diat regressors:5154 predictors:21 adjrat:1.00409"
## [1] " SSres:3.98624 SStot:19.63796 mean(y):-0.00038"
## [1] "trn-City Center-diat R2 test:0.79701 Adjusted R2 test0.79618"
## [1] "tst-City Center-diat regressors:390 predictors:21 adjrat:1.05707"
## [1] " SSres:1.12558 SStot:1.89980 mean(y):0.00291"
## [1] "tst-City Center-diat R2 test:0.40753 Adjusted R2 test0.37372"
## [1] "Value range min:-0.2500 max:0.2500"
## [1] "Read 70104 rows from ../5-prescriptive/qdata/City Center-diat3.csv"
## qhr time year
## Min. : 0 Min. :2013-01-01 00:00:00 Min. :2013
## 1st Qu.:17526 1st Qu.:2013-07-02 14:22:30 1st Qu.:2013
## Median :35041 Median :2014-01-01 00:00:00 Median :2014
## Mean :35044 Mean :2014-01-01 00:55:35 Mean :2014
## 3rd Qu.:52566 3rd Qu.:2014-07-02 14:22:30 3rd Qu.:2014
## Max. :70080 Max. :2014-12-31 23:45:00 Max. :2014
## NA's :1 NA's :1
## ydayf hourf wday holi
## Min. :0.002732 Min. :0.0000 Min. :1.000 Min. :0.00000
## 1st Qu.:0.251402 1st Qu.:0.2396 1st Qu.:2.000 1st Qu.:0.00000
## Median :0.500068 Median :0.4896 Median :4.000 Median :0.00000
## Mean :0.500229 Mean :0.4946 Mean :3.997 Mean :0.02466
## 3rd Qu.:0.748733 3rd Qu.:0.7396 3rd Qu.:6.000 3rd Qu.:0.00000
## Max. :0.997380 Max. :0.9896 Max. :7.000 Max. :1.00000
## NA's :1 NA's :1 NA's :1 NA's :1
## temp.f tcool.f theat.f dewp.f
## Min. :15.50 Min. : 0.000 Min. : 0.000 Min. : 0.90
## 1st Qu.:44.20 1st Qu.: 0.000 1st Qu.: 8.518 1st Qu.:39.72
## Median :52.10 Median : 0.000 Median :17.920 Median :46.40
## Mean :53.04 Mean : 0.482 Mean :17.625 Mean :45.72
## 3rd Qu.:61.50 3rd Qu.: 0.000 3rd Qu.:25.800 3rd Qu.:53.16
## Max. :96.10 Max. :24.040 Max. :54.460 Max. :68.60
## NA's :8 NA's :8 NA's :8 NA's :8
## pres.pa wind.deg wind.kmh hum.pc
## Min. : 986 Min. : 0.0 Min. : 0.0000 Min. :19.70
## 1st Qu.:1010 1st Qu.:114.3 1st Qu.: 0.0000 1st Qu.:69.50
## Median :1015 Median :171.2 Median : 0.4221 Median :83.10
## Mean :1015 Mean :165.8 Mean : 0.8839 Mean :78.19
## 3rd Qu.:1019 3rd Qu.:219.4 3rd Qu.: 1.3333 3rd Qu.:90.00
## Max. :1043 Max. :360.0 Max. :12.8670 Max. :97.30
## NA's :8 NA's :8 NA's :8 NA's :8
## rain.mm hdcnt iat occ
## Min. : 0.00000 Min. :1879 Min. :67.41 Min. :0.00
## 1st Qu.: 0.00000 1st Qu.:2024 1st Qu.:71.38 1st Qu.:0.07
## Median : 0.00000 Median :2045 Median :72.19 Median :0.13
## Mean : 0.09369 Mean :2026 Mean :72.22 Mean :0.39
## 3rd Qu.: 0.00000 3rd Qu.:2062 3rd Qu.:73.17 3rd Qu.:0.96
## Max. :14.25550 Max. :2085 Max. :77.13 Max. :1.00
## NA's :8 NA's :1 NA's :35532 NA's :35071
## erg e.tot e.base e.plug
## Min. :1237 Min. :1237 Min. : 220.3 Min. :247.0
## 1st Qu.:1434 1st Qu.:1434 1st Qu.: 563.9 1st Qu.:337.7
## Median :1586 Median :1586 Median : 677.0 Median :354.0
## Mean :1732 Mean :1732 Mean : 793.5 Mean :395.6
## 3rd Qu.:2008 3rd Qu.:2008 3rd Qu.:1042.9 3rd Qu.:479.0
## Max. :4174 Max. :4174 Max. :3213.5 Max. :648.2
## NA's :36238 NA's :36238 NA's :36238 NA's :36238
## diat
## Min. :-0.97
## 1st Qu.:-0.02
## Median : 0.00
## Mean : 0.00
## 3rd Qu.: 0.03
## Max. : 1.40
## NA's :35817
## [1] "piat testonlastweeks set - last training index:5172"
## [1] "Spliting piat - train cases:5171 test cases:391"
## [1] "end of splitdata"
## [1] "Starting rf on City Center-piat"
## [1] "dropvars:"
## [1] "time" "year" "ydayf" "hourf" "wday" "holi"
## [7] "hdcnt" "tcool.f" "theat.f" "dewp.f" "pres.pa" "wind.deg"
## [13] "wind.kmh" "hum.pc" "rain.mm" "occ"
## [1] "names(trn):"
## [1] "year" "ydayf" "hourf" "wday" "holi" "temp.f"
## [7] "tcool.f" "theat.f" "dewp.f" "pres.pa" "wind.deg" "wind.kmh"
## [13] "hum.pc" "rain.mm" "hdcnt" "occ" "erg" "diat"
## [19] "liat" "piat"
## [1] "dropping vars"
## [1] "time" "year" "ydayf" "hourf" "wday" "holi"
## [7] "hdcnt" "tcool.f" "theat.f" "dewp.f" "pres.pa" "wind.deg"
## [13] "wind.kmh" "hum.pc" "rain.mm" "occ"
## [1] "Training with piat ~ ."
## | Out-of-bag |
## Tree | MSE %Var(y) |
## 10 | 0.04553 3.91 |
## 20 | 0.02994 2.57 |
## 30 | 0.02223 1.91 |
## 40 | 0.02001 1.72 |
## 50 | 0.01783 1.53 |
## 60 | 0.01717 1.47 |
## 70 | 0.01663 1.43 |
## [1] "piat Training rf at 2016-01-22 23:52:12 took 1.6 secs"
## [1] "trn-City Center-piat regressors:5171 predictors:22 adjrat:1.00427"
## [1] " SSres:19.32317 SStot:6024.97351 mean(y):71.89557"
## [1] "trn-City Center-piat R2 test:0.99679 Adjusted R2 test0.99678"
## [1] "tst-City Center-piat regressors:391 predictors:22 adjrat:1.05978"
## [1] " SSres:296.16763 SStot:637.05591 mean(y):69.74730"
## [1] "tst-City Center-piat R2 test:0.53510 Adjusted R2 test0.50731"
## [1] "Value range min:0.2500 max:0.2500"
print(tset$occ$overviewplot)
print(tset$occ$detailplot)
## NULL
print(tset$erg$overviewplot)
print(tset$erg$detailplot)
# Reduce to only 3 vars, temp.f, iat, and erg
print(tset$diat$overviewplot)
print(tset$diat$detailplot)
# Reduce to only 3 vars, temp.f, iat, and erg
print(tset$iat$overviewplot)
print(tset$iat$detailplot)
# get_exdf3 <- function (rparms,rdf,slmfit,rffit)
# {
# erggran <- 100
# if (mean(rdf$erg) < 1000) {
# erggran <- 50
# }
# iatgran <- 0.5
# tpfgran <- 5
# quanlim <- c(0.02, 0.98)
# erglim <- erggran * trunc(quantile(rdf$erg, quanlim)/erggran)
# iatlim <- iatgran * trunc(quantile(rdf$iat, quanlim)/iatgran)
# tpflim <- tpfgran * trunc(quantile(rdf$temp.f, quanlim)/tpfgran)
# ergvals <- seq(erglim[[1]], erglim[[2]], erggran)
# iatvals <- seq(iatlim[[1]], iatlim[[2]], iatgran)
# tpfvals <- seq(tpflim[[1]], tpflim[[2]], tpfgran)
# exdf <- expand.grid(erg = ergvals, iat = iatvals, temp.f = tpfvals)
# hvaccolors <- rparms$hvaccolors
# names(hvaccolors) <- rparms$hvaclevs
# if (!is.null(slmfit)){
# pmdf <- predict(slmfit, exdf, trace = T, type = "dataframe")
# pmdf$pred.lm.diat <- pmdf$diat
# pmdf$diat <- NULL
# exdf <- merge(pmdf, exdf, c("erg", "iat", "temp.f"))
# }
# exdf$pred.diat <- predict(rffit, exdf)
# exdf$segname <- factor(exdf$segname, rparms$hvaclevs)
# exdf$iat.minus.oat <- exdf$iat - exdf$temp.f
# exdf$mtemp <- -exdf$temp.f
# exdf$ftemp <- as.factor(exdf$temp.f)
# exdf$ftemp <- factor(exdf$ftemp, levels = rev(levels(exdf$ftemp)))
# exdf$fiat <- as.factor(exdf$iat)
# exdf$fiat <- factor(exdf$fiat, levels = rev(levels(exdf$fiat)))
# exdf$imo <- trunc((exdf$iat.minus.oat + 5)/10) * 10
# return(exdf)
# }
# do3dplot <- function(rparms,diatlst,ddf,mode,xlb,ylb,zlb,addActualPath=F,addPredPath=T){
#
# rdf <- diatlst$rdf
# rffit <- diatlst$rffit
# slmfit <- diatlst$slmfit
# iatlims <- diatlst$iatlims
#
# diatlim <- c(-0.25,0.25)
# iatrng <- c(68,77)
#
# exdf <- get_exdf3(rparms,rdf,slmfit,rffit)
# exdf$colseg <- rparms$hvaccolors[exdf$segname]
#
# ddf$pred.iat.minus.oat <- ddf$pred.iat-ddf$temp.f
# ddf$colseg <- rparms$hvaccolors[1]
#
# if (sum(ddf$iat>iatlims[1])>0 ){
# ddf[ ddf$iat>iatlims[1],]$colseg <- rparms$hvaccolors[2]
# }
# if (sum(ddf$iat>iatlims[2])>0 ){
# ddf[ddf$iat>iatlims[2] ,]$colseg <- rparms$hvaccolors[3]
# }
#
# y <- exdf$pred.lm.diat
# if (mode=="rf"){
# y <- exdf$pred.diat
# }
# plot3d(exdf$erg,y,exdf$iat,col=exdf$colseg,xlab=xlb,ylab=ylb,zlab=zlb)
# if (addPredPath){
# lines3d(ddf$pred.erg,ddf$pred.cas.diat,ddf$iat,col=ddf$colseg,add=T)
# }
# if (addActualPath){
# lines3d(ddf$orig.cas.erg,ddf$orig.cas.diat,ddf$orig.cas.iat,col="yellow",add=T)
# }
#
# # purple floor geometry
# p3 <- par3d()
# ergmin <- p3$bbox[1]+10
# ergmax <- p3$bbox[2]-10
# diatmin <- p3$bbox[3]+0.01
# diatmax <- p3$bbox[4]-0.01
# iatmin <- p3$bbox[5]+0.1
# iatmax <- p3$bbox[6]-0.1
#
# zipdf <- data.frame(x=c(ergmin,ergmin,ergmax,ergmax,ergmin),
# y=c(0,0,0,0,0),
# z=c(iatmin,iatmax,iatmax,iatmin,iatmin))
# polygon3d(zipdf$x,zipdf$y,zipdf$z,coord=c(1,3),alpha=0.5,color="purple",add=T)
# }
# mergeByQhr<- function(cname,df,df2){
# ddf2 <- df2[,match(c("qhr",cname),names(df2))]
# rdf <- merge(df,ddf2,by="qhr")
# return(rdf)
# }
#
# mergeDfsByQhr <- function(df1,df2,df3){
# df <- df1
# sapply( names(df2), function(x){ if( is.null(df[[x]])){ df <<- mergeByQhr(x,df,df2) } } )
# sapply( names(df3), function(x){ if( is.null(df[[x]])){ df <<- mergeByQhr(x,df,df3) } } )
# return(df)
# }
# occcontrol <- function (date,occpred,preheat){
# hh <- hour(date)
# mi <- minute(date)
# hhf <- hh + mi/60
# lolim <- preheat$start-preheat$hours
# hilim <- preheat$start
# override <- lolim<hhf & hhf<=hilim
# # if (override){
# # print(sprintf("hh:%d mi:%d hhf:%.2f ph.hours:%.2f lolim:%.2f hilim:%.2f ovr:%s",hh,mi,hhf,preheat$hours,lolim,hilim,override))
# # }
#
# occval <- ifelse( override,preheat$level,occpred )
# rv <- list()
# rv$occval <- occval
# rv$override <- override
# return(rv)
# }
# cascadeModels <- function(rparms,occrf,ergrf,diatrf,iatrf,indf,iatlims=NULL,trace=F,preheat){
# sstime <- rparms$sitime
# eetime <- rparms$eitime
#
# #
# indf$occ <- as.numeric(as.character(indf$occ))
# casdf <- indf[ sstime<=indf$time & indf$time<=eetime, ]
# # casdf[["pred1.occ"]] <- predict(occrf,casdf)
# # casdf[["pred1.erg"]] <- predict(ergrf,casdf)
# # casdf[["pred1.diat"]] <- predict(diatrf,casdf)
# casdf[["pred.cas.occ"]] <- NA
# casdf[["pred.cas.erg"]] <- NA
# casdf[["pred.cas.diat"]] <- NA
# casdf[["pred.cas.iat"]] <- NA
# casdf[["pred.iat"]] <- NA
# if (!is.null(iatlims)){
# casdf[["iatseg"]] <- "heating"
# #print(sprintf("iatlims:%.1f %.1f",iatlims[1],iatlims[2]))
# }
# casdf[["orig.cas.occ"]] <- casdf[["occ"]]
# casdf[["orig.cas.erg"]] <- casdf[["erg"]]
# casdf[["orig.cas.diat"]] <- casdf[["diat"]]
# casdf[["orig.cas.iat"]] <- casdf[["iat"]]
# casdf[1,"pred.iat"] <- casdf[1,"iat"]
# iend <- nrow(casdf)
# occovcnt <- 0
# for( i in 2:iend ){
# predoccval <- as.numeric(as.character(predict(occrf,casdf[i-1,])))
# occctrl <- occcontrol(casdf[i,"time"],predoccval,preheat)
# casdf[i,"pred.cas.occ"] <- occcontrol(casdf[i,"time"],predoccval,preheat)$occval
# if (occctrl$override){
# occovcnt <- occovcnt+1
# }
#
# # casdf[i,"pred.cas.occ"] <- as.numeric(casdf[i,"occ"]) # Add this for an OCC Lock
#
# casdf[i,"occ"] <- as.numeric(as.character(casdf[[i,"pred.cas.occ"]]))
# # browser()
# casdf[i,"pred.cas.erg"] <- predict(ergrf,casdf[i-1,])
#
# # casdf[i,"pred.cas.erg"] <- casdf[i,"erg"] # Add this for an ERG Lock
# casdf[i,"erg"] <- casdf[i,"pred.cas.erg"]
# casdf[i,"pred.cas.diat"] <- predict(diatrf,casdf[i-1,])
# casdf[i,"diat"] <- casdf[i,"pred.cas.diat"]
# casdf[i-1,"liat"] <- casdf[max(1,i-2),"iat"]
# # casdf[i-1,"diat"] <- casdf[max(1,i-2),"iat"]-casdf[max(1,i-3),"iat"]
# casdf[i,"pred.new.iat"] <- predict(iatrf,casdf[i-1,])
# if (i<iend){
# casdf[i,"pred.cas.iat"] <- max(64,min(80,casdf[i-1,"iat"] + casdf[i,"diat"]))
# casdf[i,"iat"] <- casdf[i,"pred.cas.iat"]
# casdf[i,"iat"] <- casdf[i,"pred.new.iat"]
# # casdf[i+1,"iat"] <- casdf[i,"iat"] + casdf[i,"diat"]
# if (!is.null(iatlims)){
# if (casdf[i,"pred.cas.iat"]>iatlims[2]){
# casdf[i,"iatseg"] <- "cooling"
# } else if(casdf[i,"pred.cas.iat"]>iatlims[1]){
# casdf[i,"iatseg"] <- "drift"
# }
# }
# }
# casdf[i,"pred.iat"] <- casdf[i-1,"pred.iat"] + casdf[i,"orig.cas.diat"]
#
#
#
# if(trace){
# msg <- sprintf("t:%d - pred.cas.iat_t:%.1f orig.cas.iat_t:%.1f erg_t:%.1f oat_t:%.1f -> diat_t:%.2f iat.new_t:%.2f %s",
# i,casdf[i,"pred.cas.iat"],casdf[i,"orig.cas.iat"],
# casdf[i,"erg"],casdf[i,"temp.f"], casdf[i,"diat"],
# casdf[i,"pred.new.iat"],
# casdf[i,"iatseg"]
# )
# print(msg)
# }
# }
#
# # rparms$usagecostkwh <- 0.06
# # rparms$demandcostkw <- 6.00
#
#
# peakerg <- max(casdf[["pred.cas.erg"]],na.rm=T )
# sumerg <- sum(casdf[["pred.cas.erg"]],na.rm=T)/4
# avgiat <- mean(casdf[["pred.cas.iat"]],na.rm=T)
# avgocc <- mean(casdf[["pred.cas.occ"]],na.rm=T)
# dc <- peakerg*rparms$demandcostkw
# uc <- sumerg*rparms$usagecostkwh
# tc <- dc+uc
#
# msg <- sprintf("shr:%.1f hr:%.2f lv:%.2f peakE:%.1f sumE:%.1f dc:%.2f uc:%.2f tc:%.2f occov:%d avgT:%.3f",
# preheat$start,preheat$hours,preheat$level,
# peakerg,sumerg,dc,uc,tc,
# occovcnt,avgiat)
# print(msg)
#
# rv <- list()
# rv$casdf <- casdf
# rv$peakerg <- peakerg
# rv$sumerg <- sumerg
# rv$dc <- dc
# rv$uc <- uc
# rv$tc <- tc
# rv$avgocc <- avgocc
# rv$avgiat <- avgiat
# rv$preheat <- preheat
# rv$occovcnt <- occovcnt
# rv$sstime <- sstime
# rv$eetime <- eetime
# return(rv)
# }
# doOnePlot <- function(s1.x, s1.y, s1.lab, s1.iatseg,
# s2.x, s2.y, s2.lab, s2.color,
# ph.h, ph.l,
# maintit,xlab,ylab,lines=F,tdf=NULL,ybreaks=NULL)
# {
# q1df <- data.frame(x = s1.x, y = s1.y, lab=s1.iatseg,ph.hours=ph.h,ph.level=ph.l)
# q2df <- data.frame(x = s2.x, y = s2.y, lab=s2.lab, ph.hours=ph.h,ph.level=ph.l)
#
# qdf <- rbind(q1df,q2df)
# qdf <- qdf[ order(qdf$x), ]
#
# # for now disconnect these labels
# qdf$lab <- as.character(qdf$lab)
# idx <- qdf$lab=="heating" | qdf$lab=="cooling"
# if (sum(idx)>0){
# qdf[ idx,]$lab <- "drift"
# }
#
# qcolors <- c("darkblue","darkblue","darkblue",s2.color,"darkred","darkblue","darkgreen")
# names(qcolors) <- c("heating","drift","cooling",s2.lab,"high","norm","low")
#
# gp <- ggplot(qdf, aes(x,y,color=lab) ) +
#
# geom_point(alpha = I(0.5),na.rm=T) +
#
# scale_color_manual(values = qcolors) +
# labs(title=maintit,y=ylab,x=xlab) +
# theme_bw() +
# theme(axis.text.x = element_text(angle = 30, hjust = 1)) +
# facet_grid( ph.hours ~ ph.level )
# if (lines){
# gp <- gp + geom_line(alpha = I(0.5),na.rm=T)
# }
# if (!is.null(tdf)){
# #print(tdf)
# gp <- gp + geom_text(data=tdf,aes(x=x,y=y,label=label,color=color,hjust=hjust))
# ggp <<- gp
# }
# if (!is.null(ybreaks)){
# gp <- gp + scale_y_continuous(breaks=ybreaks)
# }
# return(gp)
# }
#
# doPlots <- function(ddf,odf,edf,tdf,rparms,mode){
#
# g1 <- doOnePlot( ddf$time,ddf$pred.cas.occ,sprintf("pred %s occ",mode),ddf$iatseg,
# ddf$time,ddf$orig.cas.occ,"act occ","gray80",ddf$ph.hours,ddf$ph.level,
# sprintf("%s occ - pred %s vs. act",rparms$bld,mode),
# "time","occ",lines=T,tdf=odf,ybreaks=c(0.25,0.5,0.75,1.0))
#
# g2 <- doOnePlot(ddf$time,ddf$pred.cas.erg,sprintf("pred %s %s",mode,rparms$ergname),ddf$iatseg,
# ddf$time,ddf$orig.cas.erg,"act erg","gray80",ddf$ph.hours,ddf$ph.level,
# sprintf("%s %s - pred %s vs. act", rparms$bld,rparms$ergname,mode),
# "time",rparms$ergname,lines=T,tdf=edf)
# g3 <- NULL
# # g3 <- doOnePlot(ddf$time,ddf$pred.cas.diat,sprintf("pred %s diat",mode),ddf$iatseg,
# # ddf$time,ddf$orig.cas.diat,"act diat","gray80",ddf$ph.hours,ddf$ph.level,
# # sprintf("%s diat pred %s vs. act",rparms$bld,mode),
# # "time","delta temp",lines=T)
#
# g4 <- doOnePlot(ddf$time,ddf$pred.cas.iat,sprintf("pred %s iat",mode),ddf$iatseg,
# ddf$time,ddf$orig.cas.iat,"act iat","gray80",ddf$ph.hours,ddf$ph.level,
# sprintf("%s iat pred %s vs. act",rparms$bld,mode),
# "time","indoor air temp",lines=T,tdf=tdf)
# rv <- list()
# rv$occ <- g1
# rv$erg <- g2
# rv$iat <- g3
# return(rv)
# }
# combineCosts <- function(cdf,rv){
# ddf <- data.frame(peakerg=rv$peakerg,sumerg=rv$sumerg)
# ddf$dc <- rv$dc
# ddf$uc <- rv$uc
# ddf$tc <- rv$tc
# ddf$avgiat <- rv$avgiat
# ddf$avgocc <- rv$avgocc
# ddf$ph.start <- rv$preheat$start
# ddf$ph.hours <- rv$preheat$hours
# ddf$ph.level <- rv$preheat$level
# ddf$sstime <- rv$sstime
# ddf$eetime <- rv$eetime
#
# if (is.null(cdf)){
# cdf <- ddf
# } else {
# cdf <- rbind(cdf,ddf)
# }
# rownames(cdf) <- NULL
# return(cdf)
# }
# combineData <- function(adf,rv){
# ddf <- rv$casdf
# ddf$ph.start <- rv$preheat$start
# ddf$ph.hours <- rv$preheat$hours
# ddf$ph.level <- rv$preheat$level
# ddf <- ddf[ order(ddf$time), ]
# rownames(ddf) <- NULL
# if (is.null(adf)){
# adf <- ddf
# } else {
# adf <- rbind(adf,ddf)
# }
# rownames(adf) <- NULL
# return(adf)
# }
# ergCdfTotdf <- function(cdf){
#
# # Line 1
# t1df <- data.frame(x=cdf$eetime,y=max(cdf$peakerg)*1.04)
# t1df$label <- sprintf("d:%.0f u:%.0f t: %.0f",cdf$dc,cdf$uc,cdf$tc)
# t1df$hjust <- 1
# t1df$size <- 2
# t1df$color <- "norm"
# t1df$ph.hours <- cdf$ph.hours
# t1df$ph.level <- cdf$ph.level
# t1df$tc <- cdf$tc
#
# idx <- which(t1df$tc==max(t1df$tc))
# t1df[idx,]$color <- "high"
# idx <- which(t1df$tc==min(t1df$tc))
# t1df[idx,]$color <- "low"
# t1df$tc <- NULL
#
# # Line 2
# t2df <- data.frame(x=cdf$eetime,y=max(cdf$peakerg)*0.99)
# t2df$label <- sprintf("pk:%.0f ",cdf$peakerg)
# t2df$hjust <- 1
# t2df$size <- 2
# t2df$color <- "norm"
# t2df$ph.hours <- cdf$ph.hours
# t2df$ph.level <- cdf$ph.level
# t2df$peakerg <- cdf$peakerg
#
# idx <- which(t2df$peakerg==max(t2df$peakerg))
# t2df[idx,]$color <- "high"
# idx <- which(t2df$peakerg==min(t2df$peakerg))
# t2df[idx,]$color <- "low"
# t2df$peakerg <- NULL
#
# # Line 2
# t3df <- data.frame(x=cdf$eetime,y=max(cdf$peakerg)*0.94)
# t3df$label <- sprintf("sm:%.0f ",cdf$sumerg)
# t3df$hjust <- 1
# t3df$size <- 2
# t3df$color <- "norm"
# t3df$ph.hours <- cdf$ph.hours
# t3df$ph.level <- cdf$ph.level
# t3df$sumerg <- cdf$sumerg
#
# idx <- which(t3df$sumerg==max(t3df$sumerg))
# t3df[idx,]$color <- "high"
# idx <- which(t3df$sumerg==min(t3df$sumerg))
# t3df[idx,]$color <- "low"
# t3df$sumerg <- NULL
#
#
# tdf <- rbind(t1df,t2df,t3df)
# return(tdf)
# }
# iatCdfTotdf <- function(cdf){
#
# # Line 1
# dy <- (72-69)
# t1df <- data.frame(x=cdf$eetime,y=(72.5-69)*1.05 + 69)
# t1df$label <- sprintf("avg occ:%.3f iat:%.3f",cdf$avgocc,cdf$avgiat)
# t1df$hjust <- 1
# t1df$size <- 2
# t1df$color <- "norm"
# t1df$ph.hours <- cdf$ph.hours
# t1df$ph.level <- cdf$ph.level
# t1df$avgiat <- cdf$avgiat
#
# idx <- which(t1df$avgiat==max(t1df$avgiat))
# t1df[idx,]$color <- "high"
# idx <- which(t1df$avgiat==min(t1df$avgiat))
# t1df[idx,]$color <- "low"
# t1df$avgiat <- NULL
#
#
# tdf <- rbind(t1df)
# return(tdf)
# }
# occCdfTotdf <- function(cdf){
#
# # Line 1
# t1df <- data.frame(x=cdf$eetime,y=1.0*1.12)
# t1df$label <- sprintf("avg occ:%.3f iat:%.3f",cdf$avgocc,cdf$avgiat)
# t1df$hjust <- 1
# t1df$size <- 2
# t1df$color <- "norm"
# t1df$ph.hours <- cdf$ph.hours
# t1df$ph.level <- cdf$ph.level
# t1df$avgocc <- cdf$avgocc
#
# idx <- which(t1df$avgocc==max(t1df$avgocc))
# t1df[idx,]$color <- "high"
# idx <- which(t1df$avgocc==min(t1df$avgocc))
# t1df[idx,]$color <- "low"
# t1df$avgocc <- NULL
#
#
# tdf <- rbind(t1df)
# return(tdf)
# }
#
# runSenarios <- function(starthr,hrs,lvs,occlst,erglst,diatlst,iiatlst){
# adf <- NULL
# cdf <- NULL
# tdf <- NULL
#
# mdf <- mergeDfsByQhr(occlst$rdf,erglst$rdf,iiatlst$rdf)
#
#
# preheat <- list()
# preheat$start <- starthr
# preheat$hours <- 4
# preheat$level <- 0.5
#
# for (hour in hrs){
# for (level in lvs){
# preheat$hours <- hour
# preheat$level <- level
# rv <- cascadeModels(rparms,occlst$rf,erglst$rf,diatlst$rf,iiatlst$rf,mdf,
# diatlst$iatlims,preheat=preheat)
#
# adf <- combineData(adf,rv)
# cdf <- combineCosts(cdf,rv)
# }
# }
# rv <- list()
# rv$cdf <- cdf
# rv$adf <- adf
# rv$odf <- occCdfTotdf(cdf)
# rv$edf <- ergCdfTotdf(cdf)
# rv$tdf <- iatCdfTotdf(cdf)
# rv$plts <- doPlots(rv$adf,rv$odf,rv$edf,rv$tdf,rparms,"rf")
# return(rv)
# }
starthr <- 7
hrs <- c(2.0,2.25,2.5,2.75,3.0)
lvs <- c(0.6,0.8,1.0)
runs <- runSenarios(starthr,hrs,lvs,tset$occ,tset$erg,tset$diat,tset$iat)
## [1] "shr:7.0 hr:2.00 lv:0.60 peakE:2774.7 sumE:41238.4 dc:10488.19 uc:3235.86 tc:13724.05 occov:8 avgT:71.112"
## [1] "shr:7.0 hr:2.00 lv:0.80 peakE:2543.5 sumE:41200.7 dc:9614.24 uc:3232.89 tc:12847.14 occov:8 avgT:71.188"
## [1] "shr:7.0 hr:2.00 lv:1.00 peakE:2439.3 sumE:41932.7 dc:9220.37 uc:3290.33 tc:12510.70 occov:8 avgT:71.252"
## [1] "shr:7.0 hr:2.25 lv:0.60 peakE:2807.3 sumE:41326.5 dc:10611.43 uc:3242.76 tc:13854.19 occov:9 avgT:71.102"
## [1] "shr:7.0 hr:2.25 lv:0.80 peakE:2522.8 sumE:41286.8 dc:9536.12 uc:3239.65 tc:12775.77 occov:9 avgT:71.199"
## [1] "shr:7.0 hr:2.25 lv:1.00 peakE:2431.9 sumE:42108.4 dc:9192.76 uc:3304.12 tc:12496.87 occov:9 avgT:71.262"
## [1] "shr:7.0 hr:2.50 lv:0.60 peakE:2774.7 sumE:41389.7 dc:10488.19 uc:3247.73 tc:13735.92 occov:10 avgT:71.110"
## [1] "shr:7.0 hr:2.50 lv:0.80 peakE:2522.6 sumE:41388.3 dc:9535.30 uc:3247.62 tc:12782.92 occov:10 avgT:71.208"
## [1] "shr:7.0 hr:2.50 lv:1.00 peakE:2431.9 sumE:42279.0 dc:9192.76 uc:3317.51 tc:12510.27 occov:10 avgT:71.279"
## [1] "shr:7.0 hr:2.75 lv:0.60 peakE:2795.7 sumE:41478.5 dc:10567.66 uc:3254.69 tc:13822.35 occov:11 avgT:71.101"
## [1] "shr:7.0 hr:2.75 lv:0.80 peakE:2477.0 sumE:41462.4 dc:9363.24 uc:3253.43 tc:12616.67 occov:11 avgT:71.218"
## [1] "shr:7.0 hr:2.75 lv:1.00 peakE:2432.9 sumE:42449.7 dc:9196.32 uc:3330.90 tc:12527.23 occov:11 avgT:71.289"
## [1] "shr:7.0 hr:3.00 lv:0.60 peakE:2795.7 sumE:41546.8 dc:10567.66 uc:3260.05 tc:13827.71 occov:12 avgT:71.104"
## [1] "shr:7.0 hr:3.00 lv:0.80 peakE:2474.4 sumE:41555.1 dc:9353.42 uc:3260.70 tc:12614.12 occov:12 avgT:71.229"
## [1] "shr:7.0 hr:3.00 lv:1.00 peakE:2432.9 sumE:42590.2 dc:9196.32 uc:3341.92 tc:12538.25 occov:12 avgT:71.303"
print(runs$plts$occ)
print(runs$plts$erg)
print(runs$plts$iat)
## NULL
getElapSecs <- function (starttime){
as.numeric((Sys.time()-starttime)[1],units="secs")
}
print(sprintf("%s created on %s took %.1f secs",ver$string,ver$startfmttime,getElapSecs(ver$starttime)))
## [1] "Version 0.32 created on 22 Jan 2016 - 23:51:35 took 110.0 secs"